package org.nicocube.airain.re.proc;

import java.util.concurrent.Callable;

import org.nicocube.airain.domain.client.character.Action;
import org.nicocube.airain.domain.client.character.GameCharacter;
import org.nicocube.airain.re.RuleResult;
import org.nicocube.airain.re.utils.Alea;

/**
 * Abstract class for processor
 * @author nico
 * @version 0.1
 */
public abstract class Processor implements Callable<RuleResult> {

	private final GameCharacter gc;
	private final Action action;
	private final Alea alea;

	public Processor(GameCharacter gc, Action action, Alea alea) {
		this.gc = gc;
		this.action = action;
		this.alea = alea;
	}

	/**
	 * @return the {@link GameCharacter} gc
	 */
	public GameCharacter getGc() {
		return gc;
	}

	/**
	 * @return the {@link Action} action
	 */
	public Action getAction() {
		return action;
	}

	/**
	 * @return the reference {@link Alea} alea
	 */
	public Alea getAlea() {
		return alea;
	}
}
